define(function(require, exports, module) {
	// vue，模板路由配置
	exports = {
		// 页面数据
		data: function() {
			return {
				// 网络请求参数
				urlParams: $indexScope.urlParams,
				// 上传文件弹窗显示
				uploadFileVisible: false,
				// 文件上传action
				fileUploadAction: "file/fileUpload",
				// 文件列表
				fileList: [],
				// 查询参数
				params: {
					searchKey: "fileName", // 名称
					searchValue: "", // 值
					pageNum: 1, // 当前页
					pageSize: 10 // 页面条数
				},
				// 查询键值对
				searchParams: [{
					value: "fileName",
					name: "文件名"
				}, {
					value: "fileSuffix",
					name: "文件后缀"
				}],
				// 文件信息字段
				fileInfoField: [{
					field: "id",
					name: "文件ID"
				}, {
					field: "fieldName",
					name: "字段名",
					desc: "文件上传时的字段名"
				}, {
					field: "fileName",
					name: "原文件名",
					desc: "上传时的文件名"
				}, {
					field: "saveFileName",
					name: "保存的文件名",
					desc: "保存到服务器时的文件名"
				}, {
					field: "fileSize",
					name: "文件大小(B)",
					desc: "文件大小，单位：字节(B)，1KB=1024B"
				}, {
					field: "fileType",
					name: "文件类型"
				}, {
					field: "visitNum",
					name: "访问次数",
					desc: "通过接口访问成功的次数"
				}, {
					field: "downloadNum",
					name: "下载成功次数"
				}, {
					field: "localPath",
					name: "服务器本地路径",
					desc: "存在服务器的哪个位置，不包括文件名"
				}, {
					field: "localFilePath",
					name: "服务器本地文件路径",
					desc: "存在服务器的哪个位置，包括文件名"
				}, {
					field: "fileSuffix",
					name: "文件名后缀"
				}, {
					field: "createDate",
					name: "上传日期"
				}, {
					field: "note",
					name: "备注"
				}],
				data: {
					list: [], // 数据列表
					pageSize: 10, // 页面条数
					total: 0 // 总条数
				},
				// 多选表格数据
				multipleSelection: [],
				storageSizeUnit: ["B", "KB", "MB", "GB", "TB", "PB", "EB"], // 存储大小单位
			}
		},
		// 方法
		methods: {
			// 页面跳转
			goPage: function(path, params) {
				$indexScope.goPage(path, params);
			},
			// 通过正负数返回前进页面
			goHistory: function(n) {
				$indexScope.goHistory(n);
			},
			// 多选回调
			handleSelectionChange: function(val) {
				this.multipleSelection = val;
			},
			// 查询列表
			queryList: function(pageNum) {
				var thisx = this;
				thisx.params.pageNum = pageNum;
				thisx.params.pageSize = thisx.data.pageSize;
				$indexScope.httpSend("file/queryFileList", thisx.params, function(data) {
					thisx.data = data.data;
				}, function(data) {
					alertModule().alertMsg(data.msg);
				});
			},
			// 删除文件
			delFileByIds: function() {
				if (this.multipleSelection.length > 0) {
					var thisx = this;
					alertModule().confirmMsg("确定删除？", function() {
						var params = {
							ids: []
						};
						for (var index = 0; index < thisx.multipleSelection.length; index++) {
							params.ids.push(thisx.multipleSelection[index].id);
						}
						$indexScope.httpSend("file/delFileByIds", params, function(data) {
							thisx.queryList(thisx.params.pageNum);
							alertModule().alertMsg(data.data);
						}, function(data) {
							alertModule().alertMsg(data.msg);
						})
					});
				} else {
					alertModule().msg("请至少选择一条数据！");
				}
			},
			// 修改文件名
			modifyFileName: function() {
				if (this.multipleSelection.length == 1) {
					var thisx = this;
					alertModule().prompt(function(value) {
						var params = {
							id: thisx.multipleSelection[0].id,
							fileName: value
						};
						$indexScope.httpSend("file/modifyFileName", params, function(data) {
							thisx.queryList(thisx.params.pageNum);
							alertModule().alertMsg(data.msg);
						}, function(data) {
							alertModule().alertMsg(data.msg);
						})
					}, "修改文件名", thisx.multipleSelection[0].fileName);
				} else {
					alertModule().msg("请选择一条数据！");
				}
			},
			// 修改公用状态
			modifyPublicState: function() {
				if (this.multipleSelection.length > 0) {
					var thisx = this;
					alertModule().confirmMsg("确定修改公用状态？", function() {
						var params = {
							ids: []
						};
						for (var i = 0; i < thisx.multipleSelection.length; i++) {
							params.ids.push(thisx.multipleSelection[i].id);
						}
						$indexScope.httpSend("file/modifyPublicState", params, function(data) {
							thisx.queryList(thisx.params.pageNum);
							alertModule().alertMsg(data.data);
						})
					});
				} else {
					alertModule().msg("请至少选择一条数据！");
				}
			},
			// 计算存储单位大小
			calculateStorageSize: function(size, index) {
				while (size > 1024) {
					if (index + 1 >= this.storageSizeUnit.length) {
						break;
					}
					size /= 1024;
					index++;
				}
				size = size.toFixed(2);
				return size + this.storageSizeUnit[index];
			},
			// 下载文件
			downloadFile: function() {
				if (this.multipleSelection.length == 1) {
					$indexScope.fileDownload(this.multipleSelection[0].id);
				} else {
					alertModule().msg("请选择一条数据！");
				}
			},
			// 文件上传成功
			fileUploadHandleSuccess: function(response, file, fileList) {
				alertModule().alertMsg(response.msg);
				this.uploadFileVisible = false;
				this.fileList = [];
				this.queryList(1);
			},
			// 文件上传失败
			fileUploadHandleError: function(err, file, fileList) {
				alertModule().alertMsg(err.msg);
			}
		},
		mounted: function() {
			this.queryList(1);
			this.fileUploadAction = this.urlParams.projectPath + this.fileUploadAction + this.urlParams.suffix;
		}
	};
	return exports;
});
